<?php

namespace app\common\model\User;

use think\Model;

//引入地区模型
use app\common\model\Region;

// 引入用户消费模型
use app\common\model\User\Record;

class User extends Model
{
    //指定模型对应的数据表
    protected $table = "pre_user";

    // 加一个自动添加的时间戳 当插入语句进行的时候 会把当前时间自动添加到数据库
    // 开启写入时间戳
    protected $autoWriteTimestamp = true;

    // 设置自动添加的时间戳写入哪个字段
    protected $createTime = 'createtime';

    // 关闭自动写入
    protected $updateTime = false;


    //追加一个自定义的字段 == 增加一个获取器
    protected $append = [
        'region_text',
        'sign'
    ];


    //region_text 获取器的名字和追加的这个字段是有关系的
    // value == region_text 字段的值
    // data = 是查询的一整条记录
    public function getRegionTextAttr($value, $data)
    {
        //只查询一个字段 就是name   SELECT name
        $arr = [];

        //如果为空说明没有选
        if (!empty($data['province'])) {
            $arr[] = Region::where(['code' => $data['province']])->value('name');
        }

        if (!empty($data['city'])) {
            $arr[] = Region::where(['code' => $data['city']])->value('name');
        }

        if (!empty($data['district'])) {
            $arr[] = Region::where(['code' => $data['district']])->value('name');
        }

        //判断数组是否为空
        if (empty($arr)) {
            return '';
        }

        //如果不为空,数组转换为字符串
        return implode('/', $arr);
    }

    public function getSignAttr($value,$data){
        $userid=$data['id'];

        // 查询当天用户是否有签到记录
        $where=[
            'userid' => $userid,
            'state'=>4
        ];

        $record=Record::whereTime('createtime','today')->where($where)->find();

        // 如果存在记录就说明已签到，不存在就说明未签到
        if($record){
            return true;
        }else{
            return false;
        }
    }

    
}
